import java.util.concurrent.CompletableFuture;

public class Lesson2 {

    /**
     *  创建一个一个异步执行的阶段：
     *  CompletableFuture的方法如果以Async结尾，它会异步的执行(没有指定executor的情况下)，
     *  异步执行通过ForkJoinPool实现， 它使用守护线程去执行任务。注意这是CompletableFuture的特性，
     *  其它CompletionStage可以override这个默认的行为。
     *
     * */
    public static void main(String[] args) {
        CompletableFuture completableFuture = CompletableFuture.runAsync(() -> {
            if(Thread.currentThread().isDaemon()){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        if(completableFuture.isDone()){
            System.out.println("1");
        }else{
            completableFuture.join();
            System.out.println("2");
        }
        System.out.println("3");
    }
}
